export  function parseCommand(data) {
    if (!Buffer.isBuffer(data)) {
        throw new Error('The input is not a Buffer object');
      }
      if (data.length < 1) {
        throw new Error('Buffer is too small to contain a command');
      }
      // 解析命令号（第一个字节）
      const command = data.readUInt8(0);
    
      // 检查是否有足够的长度来包含负载部分
      const payload = data.length > 1 ? data.slice(1) : Buffer.alloc(0);
    
      return { command, payload };
}

/**
 * 打印 Buffer 对象为二进制或十六进制格式，每个字节之间有空格
 * @param {Buffer} buffer - 要打印的 Buffer 对象
 * @param {string} format - 格式类型 ('binary' 或 'hex')
 */
export function printBuffer(buffer, format) {
    if (!Buffer.isBuffer(buffer)) {
      throw new Error('The input is not a Buffer object');
    }
    if (format !== 'binary' && format !== 'hex') {
      throw new Error('Invalid format. Use "binary" or "hex"');
    }
  
    let result = '';
    for (let i = 0; i < buffer.length; i++) {
      if (format === 'binary') {
        result += buffer[i].toString(2).padStart(8, '0') + ' ';
      } else if (format === 'hex') {
        result += buffer[i].toString(16).padStart(2, '0') + ' ';
      }
    }
    console.log(format,result.trim()); // 去掉最后一个多余的空格
  }